package com.chinacoal.microservice;

import com.chinacoal.microservice.fallback.TimedTaskClientFallback;
import com.chinacoal.microservice.util.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignAutoConfiguration;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * @author zhuliang
 * @version V1.0
 * @Description: 定时任务对外开发接口类
 * @date 2020-12-12 16：11
 */
@Api(tags = {"定时任务对外开发接口类"})
@FeignClient(name = "${spring.application.name}",fallback = TimedTaskClientFallback.class,configuration = FeignAutoConfiguration.class)
public interface TimedTaskClient {

    /**
     * @Description: 每月1号的0：30,开始创建费用信息,并将模板信息写入通知单中(定时任务)（仅限异常时，或测试时用）
     * @author zhuliang
     * @date 2020/12/12 16:18
     */
    @ApiOperation(value = "每月1号的0：30,开始创建费用信息,并将模板信息写入通知单中(定时任务)（仅限异常时，或测试时用））")
    @GetMapping("smartleasing/timedTask/Api/generateNotice")
    public Result generateNotice();

    /**
     * @Description: 每月1号凌晨0：15查询上个月未缴费的，租户信息改为欠费(定时任务)(仅限异常时，或测试时用)
     * @author zhuliang
     * @date 2020/12/12 16:19
     */
    @ApiOperation(value = "每月1号凌晨0：15查询上个月未缴费的，租户信息改为欠费(定时任务)(仅限异常时，或测试时用)")
    @GetMapping("smartleasing/timedTask/Api/updatePaymentStatus")
    public Result updatePaymentStatus();

    /**
     * @Description: 每天凌晨0：10查询所有合同到期的合同信息,并修改合同状态(定时任务)(仅限异常时，或测试时用)
     * @author zhuliang
     * @date 2020/12/12 16:19
     */
    @ApiOperation(value = "每天凌晨0：10查询所有合同到期的合同信息,并修改合同状态(定时任务)(仅限异常时，或测试时用)")
    @GetMapping("smartleasing/timedTask/Api/contractExpires")
    public Result contractExpires();

    /**
     * @Description: 每月1号0:20生成上一个月数据中心数据(定时任务)(仅限异常时，或测试时用)
     * @author zhuliang
     * @date 2021/1/1 0:24
     */
    @ApiOperation("每月1号0:20生成上一个月数据中心数据(定时任务)(仅限异常时，或测试时用)")
    @GetMapping("smartleasing/timedTask/Api/generateDataCenterData")
    public Result generateDataCenterData();

    @ApiOperation("每月1号0:50生成上一个月抄表数据(仅限异常时，或测试时用)")
    @GetMapping("smartleasing/timedTask/Api/updateEntriesInformation")
    public Result updateEntriesInformation();
}
